Wireless devices and systems including examples of mixing coefficient data specific to a processing mode selection

ABSTRACT

Examples described herein include systems and methods which include wireless devices and systems with examples of mixing input data with coefficient data specific to a processing mode selection. For example, a computing system with processing units may mix the input data for a transmission in a radio frequency (RF) wireless domain with the coefficient data to generate output data that is representative of the transmission being processed according to a specific processing mode selection. The processing mode selection may include a single processing mode, a multi-processing mode, or a full processing mode. The processing mode selection may be associated with an aspect of a wireless protocol. Examples of systems and methods described herein may facilitate the processing of data for 5G wireless communications in a power-efficient and time-efficient manner.

CROSS REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of pending U.S. Pat. Application No.17/394,601 on Aug. 5, 2021 which is a continuation of U.S. Pat.Application No. 16/594,503 filed Oct. 7, 2019 and issued as U.S. Pat.No. 11,088,888 on August 10, 221, which is a continuation of U.S. Pat.No. 15/941,532 filed Mar. 30, 2018 and issued as U.S. Pat. No.10,484,225 on Nov. 19, 2019, which is a continuation of U.S. Pat.Application No. 15/365,397 filed Nov. 30, 2016 and issued as U.S. Pat.No. 9,942,074 on Apr. 10, 2018. The aforementioned applications, andissued patents, are incorporated herein by reference, in its entirety,for any purpose.

BACKGROUND

Digital signal processing for wireless communications, such as digitalbaseband processing or digital front-end implementations, can beimplemented using some hardware (e.g. silicon) computing platforms. Forexample, multimedia processing and digital radio frequency (RF)processing may be accomplished in a digital front-end implementation ofa wireless transceiver, as implemented by an application-specificintegrated circuit (ASIC). A variety of hardware platforms can implementsuch digital signal processing, such as the ASIC, a digital signalprocessor (DSP) implemented as part of a field-programmable gate array(FPGA), or a system-on-chip (SoC). However, each of these solutionsoften requires implementing customized signal processing methods thatare hardware implementation specific. For example, a digital signalprocessor can implement a turbocoding application for data in acustomized design of an FPGA,

Moreover, there is interest in moving wireless communications to “fifthgeneration” (5G) systems. 5G offers promise of increased speed andubiquity, but methodologies for processing 5G wireless communicationshave not yet been set.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of a computing system arranged inaccordance with examples described herein.

FIG. 2 is a schematic illustration of a computing system arranged inaccordance with the example of FIG. 1 .

FIG. 3 is a schematic illustration of a wireless transmitter.

FIG. 4 is a schematic illustration of wireless receiver.

FIG. 5 is a schematic illustration of a wireless transmitter inaccordance with examples described herein.

FIG. 6 is a schematic illustration of a wireless transmitter inaccordance with examples described herein.

FIG. 7 is a schematic illustration of a wireless transmitter inaccordance with examples described herein.

FIG. 8 is a flowchart of a method arranged in accordance with examplesdescribed herein.

FIG. 9 is a flowchart of a method arranged in accordance with examplesdescribed herein.

DETAILED DESCRIPTION

Certain details are set forth below to provide a sufficientunderstanding of embodiments of the invention. However, it will be clearto one skilled in the art that embodiments of the invention may bepracticed without various of these particular details. In someinstances, well-known wireless communication components, circuits,control signals, timing protocols, computing system components, andsoftware operations have not been shown in detail in order to avoidunnecessarily obscuring the described embodiments of the invention.

There is interest in moving wireless communications to “fifthgeneration” (5G) systems. 5G offers promise of increased speed andubiquity, but methodologies for processing 5G wireless communicationshave not yet been set. The lead time in designing and processing ahardware platform for wireless communications can be significant.Accordingly, it may be advantageous in some examples to design and/orprocess a hardware platform for 5G wireless communication that mayprocess wireless communications using a configurable algorithm - in thismanner the algorithm utilized by the hardware platform may not need tobe decided until after the platform is designed and/or fabricated.

Examples described herein include systems and methods which includewireless devices and systems with examples of mixing input data withcoefficient data. The input data may be any data that is input fordigital signal processing. The coefficient data may be any data that isspecific to a wireless protocol. Examples of wireless protocols include,but are not limited to a 5G wireless system utilizing a wirelessprotocol such as filter bank multi-carrier (FBMC), the generalizedfrequency division multiplexing (GFDM), universal filtered multi-carrier(UFMC) transmission, bi-orthogonal frequency division multiplexing(BFDM), sparse code multiple access (SCMA), non-orthogonal multipleaccess (NOMA), multi-user shared access (MUSA) and faster-than-Nyquist(FTN) signaling with time-frequency packing. Generally, any wirelessprotocol including any 5G wireless protocol may be represented bycoefficient data as disclosed herein. The input data may be mixed withthe coefficient data to generate output data. For example, a computingsystem with processing units may mix the input data for a transmissionin a radio frequency (RF) wireless domain with the coefficient data togenerate output data that is representative of the transmission beingprocessed according to the wireless protocol in the RF wireless domain.In some examples, the computing system generates an approximation ofoutput data. For example, the output data may be an approximation ofoutput data generated when input data is processed in hardware (e.g., anFPGA) specifically-designed to implement the wireless protocol that thecoefficients correspond to.

While the above example of mixing input data with coefficient data hasdescribed in terms of an RF wireless domain, it can be appreciated thatwireless communication data may be processed from the perspective ofdifferent domains, such as a time domain (e.g., time-division multipleaccess (TDMA)), a frequency domain (e.g., orthogonal frequency-divisionmultiple access (OFDMA), and/or a code domain (e.g., code-divisionmultiple access (CDMA)).

Advantageously in some examples, the systems and methods describedherein may operate according to multiple standards and/or with multipleapplications, including changes or upgrades to each thereto; in contrastto the inflexible framework of an ASIC-based solution. In some examples,as discussed herein in terms of processing units implementingmultiplication, addition, or accumulation functionalities, examples ofthe systems and methods described herein may operate on apower-efficient framework, consuming minimal power with suchfunctionalities; in contrast to a power-hungry framework of aFPGA/DSP-based solution. In some examples, systems and methods describedherein may operate with a substantially integrated framework from aunified programming language perspective; in contrast to the variousprogramming languages needed for integration of a SoC solution that maycan pose programming challenges when implementing heterogeneousinterfaces for control units, computational units, data units andaccelerator units.

Examples described herein include systems and methods which includewireless transmitters and receivers with examples of mixing input datawith coefficient data. For example, the digital signal processingaspects of a wireless transmitter may be implemented by mixing inputdata with coefficient data, as described herein. In this manner, acomputing system can output data that is representative of operations ofan RF front-end to modulate the input data for a RF wirelesstransmission. In some examples, the coefficient data can be mixed withthe input data to represent certain operations, such as: block codingthe input data; interleaving the block coded input data; mapping theblock coded data that was interleaved according to a modulation mappingto generate modulated input data; converting the modulated input data toa frequency domain with an inverse fast Fourier transform (IFFT); andmixing the modulated input data that was converted to the frequencydomain using a carrier signal, which, in turn, generates output data. Awireless transmitter and/or wireless receiver may be referred to hereinas a wireless transceiver.

Examples described herein include systems and methods for training acomputing device with coefficient data. In some examples, a wirelesstransmitter may receive the input associated with a RF wirelesstransmission. The wireless transmitter may perform operations as an RFfront-end, such as modulating the input data for a RF wirelesstransmission. The output data that is generated by the wirelesstransmitter may be compared to the input data to generate coefficientdata. A computing device that receives and compares that output data,along with other corresponding input data and corresponding, subsequentoutput data, may be trained to generate coefficient data based on theoperations of a specifically-designed wireless transmitter such thatmixing arbitrary input data using the coefficient data generates anapproximation of the output data, as if it were processed by thespecifically-designed wireless transmitter. The coefficient data canalso be stored in a coefficient database, with each set of coefficientdata corresponding to a wireless protocol that may be utilized in the RFdomain for a data transmission.

In some examples, the computing device may receive a processing modeselection, for example, a processing mode selection from a userinteracting with the computing system. A processing mode selection canindicate a specific processing mode for the computing system. Asdescribed further below, a processing mode may correspond to a singleprocessing mode, a multi-processing mode, or a full processing mode. Asan example, a full processing mode may be a processing moderepresentative of a wireless transmitter (e.g., a wireless transmitterprocessing mode) or a processing mode representative of a wirelessreceiver (e.g., a wireless receiver processing mode). For example, awireless transmitter mode may comprise the operation of an RF front-end.Accordingly, a computing device can provide output data that isrepresentative of the data transmission being processed according to awireless transmitter mode, when such a processing mode selection isreceived by the computing device.

Generally, any aspect of a wireless protocol can be used to generatecoefficient data, which, in turn, may be utilized to mix input data togenerate output data that is representative of that aspect of thewireless protocol being processed in hardware that implements thataspect of the wireless protocol. For example, an FPGA may be used toprocess an IFFT for various data transmissions to be transmittedaccording to a wireless protocol that incorporates an IFFT. As disclosedherein, a computing system mixing input data with coefficient dataspecific to an IFFT operation may be utilized to generate output datathat is representative of the IFFT, as if the input data were processedin the aforementioned FPGA configured to process an IFFT. In someexamples, the computing system advantageously performs in more versatilesetting than an FPGA processing an IFFT. An FPGA implementing an IFFTmay be a pre-designed hardware unit that is optimized to perform at aspecific setting for the IFFT, for example, a 256-point IFFT setting.Accordingly, the FPGA that is designed for a 256-point IFFT is limitedto performing optimally for wireless protocols that specify 256-pointIFFTs. However, if a specific implementation of a wireless protocolspecifies that a 512-point FFT is to be performed by the FPGA, the FPGAmay not perform optimally in that setting. Using examples of the systemsand methods described herein, a computing system may advantageously beconfigured to operate as a 256-point IFFT or a 512-point IFFT, dependingon system or user input (e.g., a processing mode selection), therebyallowing the computing system to perform optimally in more settings thanan FPGA configured to implement a specific type of IFFT.

While some examples herein have been described in terms of an IFFT, itcan be appreciated that various aspects of a wireless protocol can beprocessed by mixing input data with coefficient data to generate outputdata representative of that aspect. For example, other aspects ofwireless protocols that can be implemented with coefficient data beingmixed with input data include, but are not limited to: basebandprocessing of a wireless transmitter, baseband processing of a wirelessreceiver, processing of a digital front-end transmitter (e.g., a digitalRF transistor), analog-to-digital conversion (ADC) processing,digital-to-analog (DAC) conversion processing, digital up conversion(DUC), digital down conversion (DDC), direct digital synthesizer (DDS)processing, DDC with DC offset compensation, digital pre-distortion(DPD), peak-to-average power ratio (PAPR) determinations, crest factorreduction (CFR) determinations, pulse-shaping, image rejection,delay/gain/imbalance compensation, noise-shaping, numerical controlledoscillator (NCO), self-interference cancellation (SIC), any modulationalgorithm, any error-correction coding or decoding algorithm, channelestimation, any pre-coding algorithm, and combinations thereof.

FIG. 1 is a schematic illustration of a computing system 110 arranged ina system 100 in accordance with examples described herein. The computingsystem 110 is coupled to a memory 130 that may store coefficient data.The computing system 110 may be coupled to the memory 130 via thenetwork 120, for example, or other electrical connection. Thecoefficient data stored in the memory 130 may include coefficient datawhich may be mixed with input data received by the computing system 110in examples described herein. Computing system 110 also includesprocessing units 112 that may interact with computer readable media 115,117, both of which may be encoded with instructions executable by theprocessing unit(s) 112. The term computer readable media as used hereinmay include both storage media and communication media. Example computerreadable media may include volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information, such as computer readable instructions.

The processing unit(s) 112 may be implemented using one or moreprocessors, for example, having any number of cores. In some examples,the processing unit(s) 112 may include circuitry, including customcircuitry, and/or firmware for performing functions described herein.For example, circuitry can include multiplication unit/accumulationunits for performing the described functions, as described herein.Processing unit(s) 112 can be any type including but not limited to amicroprocessor or a digital signal processor (DSP), or any combinationthereof. For example, processing unit(s) 112 can include levels ofcaching, such as a level one cache and a level two cache, a core, andregisters. An example processor core can include an arithmetic logicunit (ALU), a bit manipulation unit, a multiplication unit, anaccumulation unit, an adder unit, a look-up table unit, a memory look-upunit, or any combination thereof. Examples of processing unit 112 aredescribed herein, for example with reference to FIG. 2 .

The computer readable media 115, for example, may be encoded withexecutable instructions for mixing input data with coefficient data. Forexample, in the context of a 5G wireless transmission system, theexecutable instructions for mixing input data with coefficient data mayinclude instructions for providing, to the antenna, output data that isrepresentative of the input data being processed according to thewireless protocol for that 5G wireless transmission. The executableinstructions for mixing input data with coefficient data may furtherinclude instructions for multiplying a portion of the input data withcoefficient data to generate a coefficient multiplication result andaccumulating the coefficient multiplication result to be furthermultiplied and accumulated with other input data and coefficient data,examples of which are described herein.

The computer readable media 117, for example, may be encoded withexecutable instructions for implementing a processing mode. A processingmode selection may cause the computing system 110 to receive input datafor a transmission based on the processing mode selection. Generally,the computing system 110 may process input data according to a varietyof processing modes. In an example, a multi-processing mode may includeat least two aspects of a wireless protocol, whereas a single processingmode includes one aspect of a wireless protocol. Aspects of a wirelessprotocol may include, among other aspects: fast Fourier transform (FFT)processing, inverse fast Fourier transform (IFFT) processing,turbocoding, Reed Solomon processing, decoding, interleaving,deinterleaving, modulation mapping, demodulation mapping, scrambling,descrambling, or channel estimation. In some examples, the output datamay be formatted such that the output data may be received by anotherwireless processing unit for further processing. For example, acomputing system may operate in single-processing mode as a turbocodingoperation to output coded data. That coded data may be formatted to bereceived by another wireless processing unit such as interleaving thatmay be processed differently by the computing system or by anothercomputing system (e.g., a cloud computing system). A processing modeselection may be received via the user interface 114. In some examples,the processing mode selection may be received by decoding and/orexamining some portion of incoming input data. For example, thecomputing system 110 may recognize that the input data is intended forprocessing using a particular processing mode, e.g. by recognition of apattern or other signature indicative of that processing mode in theinput data.

The user interface 114 may be implemented with any of a number of inputdevices including, but not limited to, a touchscreen, keyboard, mouse,microphone, or combinations thereof. The user interface 114 may receiveinput from a user, for example, regarding a processing mode selection tospecify a processing mode for the processing unit(s) 112. The userinterface 114 may communicate the user input to the computer readablemedia 115, 117 for processing of the user input. Example user interfaces114 include a serial interface controller or a parallel interfacecontroller, which may be configured to communicate with external inputdevices (e.g., keyboard, mouse, pen, voice input device, touch inputdevice, etc.).

The network 120 may include a wired network or direct-wired connection,and wireless media such as acoustic, radio frequency (RF), microwave,infrared (IR) and other wireless media.

The memory 130 may be implemented using any storage medium accessible tothe processing unit(s) 112. For example, RAM, ROM, solid state memory,flash memory, disk drives, system memory, optical storage, orcombinations thereof, may be used to implement memory 130. The memory130 may store associations between coefficients and wireless protocolsand/or processing modes described herein.

The computing system 110 may be implemented using any of a variety ofcomputing systems, including but not limited to one or more desktop,server, laptop, or other computers. The computing system 110 generallyincludes one or more processing unit(s) 112. The computing system 100may be implemented as a mobile communication device using any usercommunication device, including but not limited to, a desktop, laptop,cellular phone, tablet, appliance, automobile, or combinations thereof.The computing system 110 may be programmed with a mobile application(e.g. processing unit(s) 112 and computer readable media encoded withinstructions which, when executed, cause the computing system 110 toperform described functions) for mixing input data with coefficient dataor specifying a processing mode. For example, the computing system 110may be programmed to receive an indication from a touchscreen of amobile communication device that a multi-processing mode is to beutilized for data received via a 5G wireless data transmission.

It is to be understood that the arrangement of computing systems of thesystem 100 may be quite flexible, and although not shown, it is to beunderstood that the system 100 may include many computing systems 110,which may be connected via the network 120 can operate in conjunctionwith each other to perform the systems and methods described herein. Thecomputer readable media 115 and the memory 130 may in some examples beimplemented using the same media, and in other examples may beimplemented using different media. For example, while the memory 130 isshown in FIG. 1 as coupled to the network 120, it can be appreciatedthat the memory 130 may also be implemented in the computing system 110.Additionally, while a single user interface 114 is shown in FIG. 1 , itcan be appreciated that the computing system 110 may further include anynumber of input devices, output devices, and/or peripheral components.For example, the user interface 114 may be the interface of a mobilecommunication device.

FIG. 2 is a schematic illustration of a processing unit 112 arranged ina system 200 in accordance with examples described herein. Theprocessing unit 112 may receive input data (e.g. X (i,j)) 210 a-c fromthe computing system, as implemented by the computer readable media 115executing instructions 115. The processing unit 212 may includemultiplication unit/accumulation units 212 a-c, 216 a-c and memorylook-up units 214 a-c, 218 a-c that, when instructions 115 are executed,may generate output data (e.g. B (u,v)) 220 a-c. The multiplicationunit/accumulation units 212 a-c, 216 a-c multiply two operands from theinput data 210 a-c to generate a multiplication processing result thatis accumulated by the accumulation unit portion of the multiplicationunit/accumulation units 212 a-c, 216 a-c. The multiplicationunit/accumulation units 212 a-c, 216 a-c adds the multiplicationprocessing result to update the processing result stored in theaccumulation unit portion, thereby accumulating the multiplicationprocessing result. For example, the multiplication unit/accumulationunits 212 a-c, 216 a c may perform a multiply-accumulate operation suchthat two operands, A and B, are multiplied and then added with C togenerate a new version of C that is stored in its respectivemultiplication unit/accumulation units. The memory look-up units 214a-c, 218 a-c retrieve coefficient data stored in memory 130. Forexample, the memory look-up unit can be a table look-up that retrieves aspecific coefficient. The output of the memory look-up units 214 a-c,218 a-c is provided to the multiplication unit/accumulation units 212a-c, 216 a c that may be utilized as a multiplication operand in themultiplication unit portion of the multiplication unit/accumulationunits 212 a-c, 216 a-c. In some examples, instructions 117 may beexecuted to facilitate selection of a specific processing mode for theprocessing unit 112. Using such a circuitry arrangement, the output data(e.g. B (u,v)) 220 a-c may be generated from the input data (e.g. X(i,j)) 210 a-c.

In some examples, coefficient data, for example from memory 130, can bemixed with the input data X (i,j) 210 a-c to generate the output data B(u,v) 220 a-c. The relationship of the coefficient data to the outputdata B (u,v) 220 a-c based on the input data X (i,j) 210 a-c may beexpressed as:

$\begin{matrix}{B( {u,v} )\mspace{6mu} = \mspace{6mu} f( {\sum\limits_{m,n}^{M,N}{a_{m,n}^{''}f( {\sum\limits_{k,l}^{K,L}{a_{k,l}^{ʹ}X( {i\mspace{6mu} + \mspace{6mu} k,\mspace{6mu} j + l} )}} )}} )} & \text{­­­(1)}\end{matrix}$

where

^(a_(k, l)^(ʹ)),  ^(a_(m, n)^(″))

are coefficients for the first set of multiplication/accumulation units212 a-c and second set of multiplication/accumulation units 216 a-c,respectively, and where

f(•)

stands for the mapping relationship performed by the memory look-upunits 214 a-c, 218 a-c. As described above, the memory look-up units 214a-c, 218 a c retrieve coefficients to mix with the input data.Accordingly, the output data may be provided by manipulating the inputdata with multiplication/accumulation units using a set of coefficientsstored in the memory associated with a desired wireless protocol. Theresulting mapped data may be manipulated by additionalmultiplication/accumulation units using additional sets of coefficientsstored in the memory associated with the desired wireless protocol. Thesets of coefficients multiplied at each stage of the processing unit 112may represent or provide an estimation of the processing of the inputdata according to the wireless protocol in specifically-designedhardware (e.g., an FPGA). Further, it can be shown that the system 200,as represented by Equation 5, may approximate any nonlinear mapping witharbitrarily small error in some examples and the mapping of system 200is determined by the coefficients

^(a_(k, l)^(ʹ)),  ^(a_(m, n)^(″))

. For example, if such coefficient data is specified, any mapping andprocessing between the input data X (i,j) 210 a-c and the output data B(u,v) 220 a-c may be accomplished by the system 200. Such arelationship, as derived from the circuitry arrangement depicted insystem 200, may be used to train a computing device 110 to generatecoefficient data. For example, using Equation (1), the computing device110 may compare input data to the output data to generate thecoefficient data.

In the example of system 200, the processing unit 112 mixes thecoefficient data with the input data X (i,j) 210 a-c utilizing thememory look-up units 214 a-c, 218 a-c. In some examples, the memorylook-up units 214 a-c, 218 a-c can be referred to as table look-upunits. The coefficient data may be associated with a mappingrelationship for the input data X (i,j) 210 a-c to the output data B(u,v) 220 a-c. For example, the coefficient data may representnon-linear mappings of the input data X (i,j) 210 a-c to the output dataB (u,v) 220 a-c. In some examples, the non-linear mappings of thecoefficient data may represent a Gaussian function, a piece-wise linearfunction, a sigmoid function, a thin-plate-spline function, amultiquadratic function, a cubic approximation, an inversemulti-quadratic function, or combinations thereof. In some examples,some or all of the memory look-up units 214 a-c, 218 a-c may bedeactivated. For example, one or more of the memory look-up units 214a-c, 218 a-c may operate as a gain unit with the unity gain. In such acase, the instructions 117 may be executed to facilitate selection of aunity gain processing mode for some or all of the memory look up units214 a-c, 218 a-c.

In some examples, the instructions 115 are executed to determine whethersome of the coefficient data is identical. In such a case, theinstructions 117 may be executed to facilitate selection of a singlememory look-up unit for identical coefficients. For example, if thecoefficient data to be retrieved by the memory look-up units 214 a and214 b are identical, then a single memory look-up unit 214 could replacethe memory look-up units 214 a and 214 b. Continuing in the example, theinstructions 117 may be further executed to configure memory look-upunit 214 a to receive input from both multiplication unit/accumulationunit 212 a and multiplication unit/accumulation unit 212 b, at differenttimes or at the same time.

Each of the multiplication unit/accumulation units 212 a-c, 216 a-c mayinclude multiple multipliers, multiple accumulation unit, or and/ormultiple adders. Any one of the multiplication unit/accumulation units212 a-c, 216 a may be implemented using an ALU. In some examples, anyone of the multiplication unit/accumulation units 212 a-c, 216 a-c caninclude one multiplier and one adder that each perform, respectively,multiple multiplications and multiple additions. The input-outputrelationship of a multiplication/accumulation unit 212, 216 may berepresented as:

$\begin{matrix}{B_{out}\mspace{6mu} = \mspace{6mu}{\sum\limits_{i = 1}^{I}{C_{i}\mspace{6mu}*\, B_{in}(i)}}} & \text{­­­(2)}\end{matrix}$

where “/” represents a number to perform the multiplications in thatunit, C_(i) the coefficients which may be accessed from a memory, suchas coefficient data memory 130, and B_(in)(i) represents a factor fromeither the input data X (i,j) 210 a-c or an output from multiplicationunit/accumulation units 212 a-c, 216 a-c. In an example, the output of aset of multiplication unit/accumulation units, B_(out), equals the sumof coefficient data, C_(i) multiplied by the output of another set ofmultiplication unit/accumulation units, B_(in)(i) . In the example,B_(in)(i) may also be the input data such that the output of a set ofmultiplication unit/accumulation units, B_(out), equals the sum ofcoefficient data, C_(i) multiplied by input data.

In some examples where the processing unit 112 is implemented to providedata in accordance with a wireless protocol with input data to betransmitted in a transmission according to the wireless protocol, theoutput data B (u,v) 220 a-c may be derived from the inputs of the system200, in the following manner. The input data X (i,j) 210 a-c may berepresented as symbols to be modulated and to generate output data B(u,v) 220 a-c for a DAC, thereby formatting the output data fortransmission by an antenna (e.g., an RF antenna). In some examples, theinputs 210 a-c may be expressed as:

$\begin{matrix}{x(n)\mspace{6mu} = \mspace{6mu}{\sum{{}_{k = 0}^{K - 1}\mspace{6mu} d( {k,m} )e^{- j2\pi\frac{kn}{N}}}}} & \text{­­­(3)}\end{matrix}$

$\begin{matrix}{x(n)\mspace{6mu} = \mspace{6mu}{\sum{}_{m = 0}^{M - 1}}\mspace{6mu}{\sum{}_{k = 0}^{K - 1}}\mspace{6mu} d( {k,m} )g\lbrack n\rbrack\mspace{6mu} \ast \mspace{6mu}\delta\lbrack {n\mspace{6mu} - \mspace{6mu} mN} \rbrack e^{- j2\pi\frac{kn}{N}}} & \text{­­­(4)}\end{matrix}$

where n is the time index, k is the sub-carrier index, m is thetime-symbol index, M is the number of symbols per sub-carrier, K is thenumber of active sub-carriers and N is the total number of sub-carriers(e.g., the length of Discrete Fourier Transform (DFT)), x(n) is theinput data X (i,j) 210 a-c, n] are the shaping filter coefficients and d(k,m) is the coded data related to m′th symbol. In some examples wherethe system 200 implements OFDM, Equation 3 may be further generalizedto:

$\begin{matrix}{x(n)\mspace{6mu} = \mspace{6mu}{\sum{{}_{k = 0}^{K - 1}\mspace{6mu} d( {k,m} )\mspace{6mu} \ast \mspace{6mu} g_{k}(n)}}} & \text{­­­(5)}\end{matrix}$

where gk(n) is the impulse response of the k′th filter. Accordingly, afilter with a rectangular impulse response can represent the input dataX (i,j) 210 a-c. And Equation 5 may also be expressed as:

$\begin{matrix}{x(n)\mspace{6mu} = \mspace{6mu}{\sum{}_{b = 0}^{B - 1}}\mspace{6mu}{\sum{}_{k = 0}^{K_{b} - 1}}\mspace{6mu} d( {k,m} )\mspace{6mu} \ast \mspace{6mu} g_{k}\mspace{6mu}( {b,n} )} & \text{­­­(6)}\end{matrix}$

where B is the number of sub-bands, K_(b) is the number of subcarriersin b′th sub-band, g_(k) (b, n) is the impulse response of thecorresponding k′th filter in b′th sub-band.

FIG. 3 is a schematic illustration of a wireless transmitter 300. Thewireless transmitter 300 receives input data X (i,j) 310 and performsoperations of an RF-front end to generate output data B (u,v) 330 forwireless transmission. The output data B (u,v) 330 is amplified by apower amplifier 332 before that output data is transmitted on an RFantenna 336. The operations of the RF-front end may generally beperformed with analog circuitry or processed as a digital basebandoperation for implementation of a digital front-end. The operations ofthe RF-front end include a scrambler 304, a coder 308, an interleaver312, a modulation mapping 316, a frame adaptation 320, an IFFT 324, aguard interval 324, and frequency up conversion 328.

The scrambler 304 converts the input data to a pseudo-random or randombinary sequence. For example, the input data can be a transport layersource (such as MPEG-2 Transport stream and other data) that isconverted to a Pseudo Random Binary Sequence (PRBS) with a generatorpolynomial. While described in the example of a generator polynomial,various scramblers 304 are possible. The coder 308 may encode the dataoutputted from the scrambler to code the data. For example, aReed-Solomon (R.S) encoder or turbo encoder may be used as outer coderto generate a parity block for each randomized transport packet fed bythe scrambler 304. In some examples, the length of parity block and thetransport packet can vary according to various wireless protocols. Theinterleaver 312 may interleave the parity blocks output by the coder308, for example, the interleaver 312 may utilize convolutional byteinterleaving. In some examples, additional coding and interleaving canbe performed after the coder 308 and interleaver 312. For example,additional coding may include an inner coder that may further code dataoutput from the interleaver, for example, with a punctured convolutionalcoding having a certain constraint length. Additional interleaving mayinclude an inner interleaver that forms groups of joined blocks. Whiledescribed in the context of a RS coding, turbocoding, and puncturedconvolution coding, various coders 308 are possible. While described inthe context of convolutional byte interleaving, various interleavers 312are possible.

The modulation mapping 316 modulates the data outputted from theinterleaver 312. For example, quadrature amplitude modulation (QAM) canmap the data by changing (e.g., modulating) the amplitude of the relatedcarriers. Various modulation mappings can are possible, including, butnot limited to: Quadrature Phase Shift Keying(QPSK), SCMA NOMA, and MUSA(Multi-user Shared Access). Output from the modulation mapping 316 maybe referred to as data symbols. While described in the context of QAMmodulation, various modulation mappings 316 are possible. The frameadaptation 320 may arrange the output from the modulation mappingaccording to bit sequences that represent corresponding modulationsymbols, carriers, and frames.

The IFFT 324 may transform symbols that have been framed intosub-carriers (e.g., by frame adaptation 320) into time-domain symbols.For example, taking an example of an OFDM wireless protocol scheme, theIFFT can be applied as N-point IFFT:

$\begin{matrix}{x_{k}\mspace{6mu} = \mspace{6mu}{\sum\limits_{n = 1}^{N}{X_{n}e^{{i2\pi kn}/N}}}} & \text{­­­(7)}\end{matrix}$

where X_(n) is the modulated symbol sent in the nth OFDM sub-carrier.Accordingly, the output of the IFFT 324 may form time-domain OFDMsymbols. In some examples, the IFFT 324 may be replaced by a pulseshaping filter or poly-phase filtering banks to output symbols forfrequency-up conversion 328. The guard interval 324 adds a guardinterval to the time-domain OFDM symbols. For example, the guardinterval may be a fractional length of a symbol duration that is added,to reduce inter-symbol interference, by repeating a portion of the endof a time-domain OFDM symbol at the beginning of the frame. For example,the guard interval can be a time period corresponding to the cyclicprefix portion of the OFDM wireless protocol scheme. The frequency upconversion 328 may up convert the time-domain OFDM symbols to a specificradio frequency. For example, the time-domain OFDM symbols can be viewedas a baseband frequency range and a local oscillator can mix thefrequency at which it oscillates with the OFDM symbols to generate OFDMsymbols at the oscillation frequency. Accordingly, the OFDM symbols canbe up-converted to a specific radio frequency for an RF transmission.The power amplifier 332 may amplify the output B (u,v) 330 to outputdata for an RF transmission in an RF domain at the antenna 336. Theantenna 336 may be an antenna designed to radiate at a specific radiofrequency. For example, the antenna 336 may radiate at the frequency atwhich the OFDM symbols were up-converted. Accordingly, the wirelesstransmitter 300 may transmit an RF transmission via the antenna 336based on the input data X (i,j) 310 received at the scrambler 304. Asdescribed above with respect to FIG. 3 , the operations of the wirelesstransmitter 300 can include a variety of processing operations. Suchoperations can be implemented in a conventional wireless transmitter,with each operation implemented by specifically-designed hardware forthat respective operation. For example, a DSP processing unit may bespecifically-designed to implement the IFFT 324. As can be appreciated,additional operations of wireless transmitter 300 may be included in aconventional wireless receiver, and some operations depicted withrespect to FIG. 3 may not be implemented in a conventional wirelesstransmitter.

FIG. 4 is a schematic illustration of wireless receiver 400. Thewireless receiver 400 receives input data X (i,j) 410 from an antenna404 and performs operations of a RF wireless receiver to generate outputdata B (u,v) 450. The antenna 404 may be an antenna designed to receiveat a specific radio frequency. The operations of the RF wirelessreceiver may be performed with analog circuitry or processed as adigital baseband operation for implementation of a digital front-end.The operations of the RF wireless receiver include a frequency downconversion 412, guard interval removal 416, a fast Fourier transform420, synchronization 424, channel estimation 428, a demodulation mapping432, a deinterleaver 436, a decoder 440, and a descrambler 444.

The frequency down conversion 412 may down convert the frequency domainsymbols to a baseband processing range. For example, continuing in theexample of an OFDM implementation, the time-domain OFDM symbols may bemixed with a local oscillator frequency to generate OFDM symbols at abaseband frequency range. Accordingly, the RF transmission includingtime-domain OFDM symbols may be down-converted to baseband. The guardinterval 416 may remove a guard interval from the frequency-domain OFDMsymbols. The FFT 420 may transform the time-domain OFDM symbols intofrequency-domain OFDM symbols. For example, taking an example of an OFDMwireless protocol scheme, the FFT can be applied as N-point FFT

$\begin{matrix}{X_{n}\mspace{6mu} = \mspace{6mu}{\sum\limits_{k = 1}^{N}{x_{k}e^{- {{i2\pi kn}/N}}}}} & \text{­­­(8)}\end{matrix}$

where X_(n) is the modulated symbol sent in the nth OFDM sub-carrier.Accordingly, the output of the FFT 420 may form frequency-domain OFDMsymbols. In some examples, the FFT 420 may be replaced by poly-phasefiltering banks to output symbols for synchronization 424.

The synchronization 424 may detect pilot symbols in the OFDM symbols tosynchronize the transmitted data. In some examples of an OFDMimplementation, pilot symbols may be detected at the beginning of aframe (e.g., in a header) in the time-domain. Such symbols can be usedby the receiver 400 for frame synchronization. With the framessynchronized, the OFDM symbols proceed to channel estimation 428. Thechannel estimation 428 may also use the time-domain pilot symbols andadditional frequency-domain pilot symbols to estimate the time orfrequency effects (e.g., path loss) to the received signal. For example,a channel may be estimated based on N signals received through Nantennas (in addition to the antenna 404) in a preamble period of eachsignal. In some example, the channel estimation 428 may also use theguard interval that was removed at the guard interval removal 416. Withthe channel estimate, the channel estimation 428 may compensate thefrequency-domain OFDM symbols by some factor to minimize the effects ofthe estimated channel. While channel estimation has been described interms of time-domain pilot symbols and frequency-domain pilot symbols,it can be appreciate that that other channel estimation techniques orsystems are possible, such as a MIMO-based channel estimation system ora frequency-domain equalization system. The demodulation mapping 432 maydemodulate the data outputted from the channel estimation 428. Forexample, a quadrature amplitude modulation (QAM) demodulator can map thedata by changing (e.g., modulating) the amplitude of the relatedcarriers. Any modulation mapping described herein can have acorresponding demodulation mapping as performed by demodulation mapping432. In some examples, the demodulation mapping 432 may detect the phaseof the carrier signal to facilitate the demodulation of the OFDMsymbols. The demodulation mapping 432 may generate bit data from theOFDM symbols to be further processed by the deinterleaver 436.

The deinterleaver 436 may deinterleave the data bits, arranged as parityblock from demodulation mapping into a bit stream for the decoder 440,for example, the deinterleaver 436 may perform an inverse operation toconvolutional byte interleaving. The deinterleaver 436 may also use thechannel estimation to compensate for channel effects to the parityblocks. The decoder 440 may decode the data outputted from the scramblerto code the data. For example, a Reed-Solomon (RS) decoder or turbodecoder may be used as a decoder to generate a decoded bit stream forthe descrambler 444. For example, a turbo decoder may implement aparallel concatenated decoding scheme. In some examples, additionaldecoding deinterleaving may be performed after the decoder 440 anddeinterleaver 436. For example, additional coding may include an outercoder that may further decode data output from the decoder 440. Whiledescribed in the context of a RS decoding and turbo decoding, variousdecoders 440 are possible. The descrambler 444 may convert the outputdata from decoder 440 from a pseudo-random or random binary sequence tooriginal source data. For example, the descrambler 44 may convertdecoded data to a transport layer destination (e.g., MPEG-2 transportstream) that is descrambled with an inverse to the generator polynomialof the scrambler 304. The descrambler thus outputs data B (u,v) 450.Accordingly, the wireless receiver 400 receives an RF transmissionincluding input data X (i,j) 410 via to generate output data B (u,v)450.

As described above with respect to FIG. 4 , the operations of thewireless receiver 400 can include a variety of processing operations.Such operations can be implemented in a conventional wireless receiver,with each operation implemented by specifically-designed hardware forthat respective operation. For example, a DSP processing unit may bespecifically-designed to implement the FFT 420. As can be appreciated,additional operations of wireless receiver 400 may be included in aconventional wireless receiver, and some operations depicted withrespect to FIG. 4 may not be implemented in a conventional wirelessreceiver.

FIG. 5 is a schematic illustration of a wireless transmitter 500 inaccordance with examples described herein. FIG. 5 shows a wirelesstransmitter that may perform several operations of an RF-front end for awireless transmission with input data X (i,j) 310, including scrambler304, a coder 308, an interleaver 312, a frame adaptation 320, an IFFT324, a guard interval 324, and frequency up conversion 328. Thetransmitter 500 utilizes a computing system 110 with a processing unit112 to perform the operation of modulation mapping, such as modulationmapping 316. For example, the processing unit 112 of computing system110 executes instructions 115 that mix input data with coefficient data.In the example of transmitter 500, the input data (e.g., input data X(i,j) 210 a-c) of the computing system 110 may be the output of theinterleaver 312; the output data (e.g., output data B (u,v) 220 a-c) ofthe computing system 110 may be the input to the frame adaptation 320.For example, the input data of the computing system 110 may bemultiplied with the coefficient data to generate a multiplication resultat multiplication unit/accumulation unit, and the multiplication resultmay be accumulated at that multiplication unit/accumulation unit to befurther multiplied and accumulated with other portions of the input dataand additional coefficients of the plurality of coefficients. Forexample, the processing unit 112 utilizes selected coefficient such thatmixing the coefficients with input data generates output data thatreflects the processing of the input data with coefficients by thecircuitry of FIG. 2 .

The computing system 110 of the transmitter 500 may retrieve coefficientdata specific to a single processing mode selection 502. As depicted inFIG. 5 , the computing system 110 may receive a single processing modeselection 502. As described herein, the single processing mode maycorrespond to an aspect of a wireless protocol. Accordingly, in theexample of system 500, the single mode processing selection 502 maycorrespond to the modulation mapping aspect of a wireless protocol. Whensuch a selection 502 is received, the computing system 110 may executeinstructions for implementing a processing mode encoded in the computerreadable media 117. For example, the instructions 117 may includeselecting a single processing mode from among multiple single processingmodes, each single processing mode with respective coefficient data.

The single mode processing selection 502 may also indicate the aspect ofthe wireless protocol for which the computing system 110 is to executeinstructions 115 to generate output data corresponding to the operationof that aspect of the wireless protocol. As depicted, the singleprocessing mode selection 502 indicates that the computing system 110 isoperating as a modulation mapping aspect for the wireless transmitter500. Accordingly, the computing system 110 may implement a modulationmapping processing mode to process the input data to retrievecoefficient data corresponding to the selection of the modulationmapping processing mode. That coefficient data may be mixed with inputdata to the computing system 110 to generate output data wheninstructions 115 are executed.

The single processing mode selection 502 may also indicate a type ofmodulation mapping. For example, the modulation mapping can beassociated with a modulation scheme including, but not limited to: GFDM,FBMC, UFMC, DFDM, SCMA, NOMA, MUSA, or FTN. It can be appreciated thateach aspect of a wireless protocol with a corresponding singleprocessing mode can include various types of that aspect, such as amodulation mapping processing mode having a variety of modulationschemes from which to select.

The coefficient data corresponding to the selection of the modulationmapping processing mode may be retrieved from a memory (e.g., memory 130or a cloud-computing database). The coefficients retrieved from thememory are specific to the single processing mode selection 502. In thecontext of the example of transmitter 500, the single processing modeselection 502 may indicate that coefficient data specific to amodulation mapping processing mode are to be retrieved from the memory.Accordingly, the output data from the computing system 110 intransmitter 500 may be representative of a portion of the transmissionof the transmitter being processed according to the modulationprocessing mode selection. The computing system 110 may output the datasuch the frame adaptation 320 receives the output data for furtherprocessing of the transmission.

While described above in the context of a modulation mapping processingmode, it is to be appreciated that other single processing modes arepossible including, but not limited to: a fast Fourier transform (FFT)processing mode, an inverse fast Fourier transform (IFFT) processingmode, a turbocoding processing mode, a decoding processing mode, a ReedSolomon processing mode, an interleaver processing mode, adeinterleaving processing mode, a demodulation mapping processing mode,a scrambling processing mode, a descrambling processing mode, a channelestimation processing mode, or combinations thereof. For example, whileFIG. 5 illustrates a single processing mode selection 502 being receivedat a computing system 110 to implement a modulation mapping processingmode, it is to be appreciated that a computing system 110 may replaceany of the RF operations of the wireless transmitter depicted in FIG. 5to output data B (u,v) 530, such that the single processing modeselection 502 indicates that the computing system 110 may implementanother aspect of the wireless transmitter.

Using such a computing system 110, the transmitter 500 may receive inputdata X (i,j) 310 to mix with coefficient data specific to an aspect of awireless protocol. For example, the coefficient data may be specific tothe modulation mapping aspect of a wireless protocol. The transmitter500 may generate output data B (u,v) 530 that is representative of theinput data being processed according to a wireless transmitterconfigured to operate with that wireless protocol, such as the wirelesstransmitter 300. For example, the output data B (u,v) 530 may correspondto an estimate of the output data B (u,v) 330 of FIG. 3 .

FIG. 6 is a schematic illustration of a wireless transmitter 600 inaccordance with examples described herein. FIG. 6 shows a wirelesstransmitter that performs several operations of an RF-front end for awireless transmission with input data X (i,j) 310, including scrambler304, a frame adaptation 320, an IFFT 324, a guard interval 324, andfrequency up conversion 328. The transmitter 600 utilizes a computingsystem 110 with a processing unit 112 to perform the operation ofcoding, interleaving, and modulation mapping; such as coder 308,interleaver 312, and modulation mapping 316. For example, the processingunit 112 of computing system 110 executes instructions 115 that mixinput data with coefficient data. In the example of transmitter 600, theinput data (e.g., input data X (i,j) 210 a-c) of the computing system110 can be the output of the scrambler 304; and the output data (e.g.,output data B (u,v) 220 a-c) of the computing system 110 can be theinput to the frame adaptation 320. For example, the input data of thecomputing system 110 can multiplied with the coefficient data togenerate a multiplication result at multiplication unit/accumulationunit, and the multiplication result can be accumulated at thatmultiplication unit/accumulation unit to be further multiplied andaccumulated with other portions of the input data and additionalcoefficients of the plurality of coefficients. Accordingly, theprocessing unit 112 utilizes selected coefficient such that mixing thecoefficients with input data generates output data that reflects theprocessing of the input data with coefficients by the circuitry of FIG.2 .

The computing system 110 of the transmitter 600 may retrieve coefficientdata specific to a multi-processing mode selection 602. As depicted inFIG. 6 , the computing system 110 receives a multi-processing modeselection 602. As described herein, the multi-processing mode maycorrespond to at least two aspects of a wireless protocol. Accordingly,in the example of system 600, the multi-processing mode selection 602corresponds to the coding aspect, the interleaving aspect, and themodulation mapping aspect of a wireless protocol. When such a selection602 is received, the computing system 110 may execute instructions forimplementing a processing mode encoded in the computer readable media117. For example, the instructions 117 may include selecting amulti-processing mode from among multiple multi-processing modes, eachmulti-processing mode with respective coefficient data.

The multi-processing mode selection 602 may also indicate the aspect ofthe wireless protocol for which the computing system 110 is to executeinstructions 115 to generate output data corresponding to the operationof that aspect of the wireless protocol. As depicted, themulti-processing mode selection 602 indicates that the computing system110 is operating as a coding, interleaving, and modulation mapping forthe wireless transmitter 600. Accordingly, the computing system 110 mayimplement a specific multi-processing mode to process the input data toretrieve coefficient data corresponding to the selection of thatspecific multi-processing mode. That coefficient data may be mixed withinput data to the computing system 110 to generate output data wheninstructions 115 are executed.

The multi-processing mode selection 602 may also indicate types of eachaspect of the wireless protocol. For example, as described above, themodulation mapping aspect can be associated with a modulation schemeincluding, but not limited to: GFDM, FBMC, UFMC, DFDM, SCMA, NOMA, MUSA,or FTN. Continuing in the example, the coding aspect can be associatedwith a specific type of coding such as RS coding or turbocoding. It isto be appreciated that each aspect of a wireless protocol with acorresponding multi-processing mode may include various types of thataspect.

The coefficient data may corresponding to the selection of themulti-processing mode can be retrieved from a memory (e.g., memory 130or a cloud-computing database). The coefficients retrieved from thememory may be specific to the multi-processing mode selection 602.Accordingly, the output data from the computing system 110 intransmitter 600 may be representative of a portion of the transmissionof the transmitter being processed according to the multi-processingmode selection 602. The computing system 110 may output the data suchthe frame adaptation 320 receives the output data for further processingof the transmission.

While described above in the context of a specific multi-processing modeselection comprising a coding aspect, an interleaving aspect, and amodulation mapping aspect, it is to be appreciated that othermulti-processing modes are possible including, but not limited to anycombination of single processing modes described above. For example,while FIG. 6 illustrates a multi-processing mode selection 602 beingreceived at a computing system 110 to implement a coding aspect, aninterleaving aspect, and a modulation mapping aspect, it can beappreciated that a computing system 110 can replace any of the RFoperations of the wireless transmitter depicted in FIG. 6 to output dataB (u,v) 630, such that the single processing mode selection 602indicates that the computing system 110 is to implement at least twoaspects of the wireless transmitter.

Using such a computing system 110, the transmitter 600 may receive inputdata X (i,j) 310 to mix with coefficient data specific to at least twoaspects of a wireless protocol. The transmitter 600 generates outputdata B (u,v) 630 that is representative of the input data beingprocessed according to a wireless transmitter configured to operate withthat wireless protocol, such as the wireless transmitter 300. Forexample, the output data B (u,v) 630 may correspond to an estimate ofthe output data B (u,v) 330 of FIG. 3 .

FIG. 7 is a schematic illustration of a wireless transmitter 700 inaccordance with examples described herein. The wireless transmitter 700may perform several operations of an RF-front end for a wirelesstransmission with input data X (i,j) 310. The transmitter 700 utilizes acomputing system 110 with a processing unit 112 to perform theoperations of an RF-front end. For example, the processing unit 112 ofcomputing system 110 may execute instructions 115 that mix input datawith coefficient data. In the example of transmitter 700, the outputdata (e.g., output data B (u,v) 220 a-c) of the computing system 110 maybe the input to power amplifier 332 after processing of the input data X(i,j) 310 (e.g., input data X (i,j) 210 a-c) . For example, the inputdata of the computing system 110 may be multiplied with the coefficientdata to generate a multiplication result at multiplicationunit/accumulation unit, and the multiplication result may be accumulatedat that multiplication unit/accumulation unit to be further multipliedand accumulated with other portions of the input data and additionalcoefficients of the plurality of coefficients. For example, theprocessing unit 112 utilizes selected coefficient such that mixing thecoefficients with input data generates output data that reflects theprocessing of the input data with coefficients by the circuitry of FIG.2 .

The computing system 110 of the transmitter 700 may retrieve coefficientdata specific to a full processing mode selection 702. As depicted inFIG. 7 , the computing system 110 may receive a multi-processing modeselection 702. As described herein, the full processing a fullprocessing mode may be a processing mode representative of a wirelesstransmitter (e.g., a wireless transmitter processing mode) or aprocessing mode representative of a wireless receiver (e.g., a wirelessreceiver processing mode).. Accordingly, in the example of system 700,the full processing mode selection 702 may correspond to the wirelesstransmitter processing mode that may implement any aspects of a specificwireless protocol required for a wireless transmitter to implement thatprotocol. Similarly, a wireless receiver processing mode may implementany aspects of a specific wireless protocol required for a wirelessreceiver to implement that protocol. When such a selection 702 isreceived, the computing system 110 may execute instructions forimplementing a processing mode encoded in the computer readable media117. For example, the instructions 117 may include selecting a fullprocessing mode from among multiple full processing mode, each fullprocessing mode with respective coefficient data.

The full processing mode selection 702 may indicate the wirelessprotocol for which the computing system 110 is to execute instructions115 to generate output data corresponding to the operation of that thewireless protocol as wireless transmitter. For example, the fullprocessing mode selection 702 may indicate that the wireless transmitteris to implement a 5G wireless protocol that includes a FBMC modulationscheme. Accordingly, the computing system 110 may implement a specificfull processing mode to process the input data to retrieve coefficientdata corresponding to the selection of that specific full processingmode. That coefficient data can be mixed with input data to thecomputing system 110 to generate output data when instructions 115 areexecuted.

The coefficient data can corresponding to the selection of the fullprocessing mode may be retrieved from a memory (e.g., memory 130 or acloud-computing database). The coefficients retrieved from the memoryare specific to the full processing mode selection 702. Accordingly, theoutput data from the computing system 110 in transmitter 700 may berepresentative of the transmission being processed according to the fullprocessing mode selection 702.

Using such a computing system 110, the transmitter 700 may receive inputdata X (i,j) 310 to mix with coefficient data specific to a fullprocessing mode of a wireless protocol. The transmitter 700 may generateoutput data B (u,v) 730 that is representative of the input data beingprocessed according to a wireless transmitter configured to operate withthat wireless protocol, such as the wireless transmitter 300. Forexample, the output data B (u,v) 730 may correspond to an estimate ofthe output data B (u,v) 330 of FIG. 3 .

In some examples, the wireless transmitter mode may include theoperations of a digital baseband processing, an RF front-end, and anyfronthaul processing such as compression or estimation. As an example offronthaul processing, the computing system 110 may operate in aCloud-Radio Access Network (C-RAN) where wireless base stationfunctionality is divided between remote radio heads (RRHs) and basebandunits (BBUs). An RRII may perform RF amplification, up/down conversion,filtering, ADC, or DAC to provide a baseband signal to a BBU. A BBU canprocess the baseband signals and optimize resource allocation among theRRHs. A fronthaul can be the link between an RRH and a BBU that mayperform compression of the baseband signal to send the signal to BBU andthat may additionally perform estimation of the fronthaul link tocompensate for any effects the fronthaul has on the baseband signalduring transmission to the 1313lJ. In such examples, a computing system110 may operate as either a RRH, a fronthaul, a BBU, or any combinationthereof by executing instructions 115 that mix input data withcoefficient data and/or executing instructions to implement a processingmode, such as an RRH processing mode, a fronthaul processing mode, or aBBU processing mode.

To train a computing device to generate coefficient data with the outputdata B (u,v) 730, a wireless transmitter may receive the inputassociated with a RF wireless transmission. Then, the wirelesstransmitter may perform operations as an RF front-end according to awireless protocol, such as modulating the input data for a RF wirelesstransmission. The output data that is generated by the wirelesstransmitter can be compared to the input data to generate coefficientdata. For example, the comparison can involve a minimization functionthat optimizes coefficients. Such a minimization function can berepresented as an optimization problem with a p-norm:

$\begin{matrix}{\min{\sum\limits_{C1}{\cdot {\sum\limits_{C2}| {\overline{B}( {u,v} )\mspace{6mu} - \mspace{6mu} f( {\sum\limits_{m,n}^{M,N}{a_{m,n}^{''}f( {\sum\limits_{k,l}^{K,L}{a_{k,l}^{ʹ}X( {i + k,\mspace{6mu} j + l} )}} )}} )} |}}}^{p}} & \text{­­­(9)}\end{matrix}$

where C1 stands for the number of the input samples and C2 denotes thenumber of test vectors involved in the full-processing mode. In anexample, the p-norm of the output data from a processing unit 112 (e.g.,as represented in Equation 1) subtracted from the output data of aspecifically-designed wireless transmitter (e.g., B̅(u,v)) is summedacross C1 input samples and C2 test vectors. A minimization functionanalyzes each combination of input samples and test vectors to determinethe minimum quantity, which may reflect a minimized error of thedifference between the two outputs. The coefficients utilized togenerate that minimized quantity reflect the least error estimation ofthe output from the specifically-designed wireless transmitter.Accordingly, a computing device 110 that compares output data accordingto the relationships of Equation 9, may be trained to generatecoefficient data based on the operations of the wireless transmittersuch that mixing arbitrary input data (e.g., test vectors) using thecoefficient data generates an approximation of the output data, as if itwere processed by the specifically-designed wireless transmitter. Thecoefficient data may also be stored in a coefficient database (e.g.,memory 130), with each set of coefficient data corresponding to aparticular wireless protocol that may be utilized in the RF domain for adata transmission. In some examples, an input test vector and an outputtest vector that emulates the processing of a wireless transmitter canbe used to generate the coefficient data.

In an example of Equation 9, the p-norm of the output data from aprocessing unit 112 (e.g., as represented in Equation 1) subtracted fromthe output data of a specifically-designed wireless receiver (e.g.,B̅(u,v)) is summed across C1 input samples and C2 test vectors. Thecoefficients utilized to generate a minimized quantity, according to theoptimization of Equation 9, reflect the least error estimation of theoutput from the specifically-designed wireless transmitter. Accordingly,a computing device 110 that compares output data according to therelationships of Equation 9, may be trained to generate coefficient databased on the operations of the wireless receiver such that mixingarbitrary input data (e.g., test vectors) using the coefficient datagenerates an approximation of the output data, as if it were processedby the specifically-designed wireless receiver.

While some examples herein having a single-processing mode selection(e.g., as depicted in FIG. 5 ), multi-processing mode selection (e.g.,as depicted in FIG. 6 ), and full processing mode selection (e.g., asdepicted in FIG. 7 ) have been described in the context of a wirelesstransmitter, in some examples the processing modes may be implemented,as executed by instructions 117 for implementing a processing mode, in awireless receiver, such as the wireless receiver 400 of FIG. 4 , withcorresponding aspects of a wireless protocol being implemented by acomputing system 110 with processing unit(s) 112. For example, acomputing system may receive wireless input data from an antenna 404with a computing system 110 implementing a wireless receiver processingmode, as indicated by a full processing mode selection indicating awireless receiver processing mode. Accordingly, any aspect of a wirelesstransmitter or a wireless receiver, whether a single aspect,multi-aspect, or full implementation, may be implemented by a computingsystem 110 with processing unit(s) 112 implementing instructions 115 formixing input data with coefficient data and instructions 117 forimplementing a processing mode. Similarly, a computing device 110 may betrained with coefficient data generated from a wireless receiverconfigured to operate in accordance with a wireless protocol. Forexample, the output data that is generated by the wireless receiver (orany aspect of a wireless receiver) may be compared to the input data togenerate coefficient data.

Additionally or alternatively, any processing mode selection mayindicate types of each aspect of the wireless protocol. For example, amodulation mapping aspect may be associated with a modulation schemeincluding, but not limited to: GFDM, FBMC, UFMC, DFDM, SCMA, NOMA, MUSA,or FTN. Each aspect of a wireless protocol with a correspondingprocessing mode may include various types of that aspect. For example,the full processing mode selection 702 may indicate an aspect for upconversion to a 5G wireless frequency range, such as utilizing a carrierfrequency in the E-band (e.g., 71-76 GHz and 81-86 GHz), a 28 GHzMillimeter Wave (mmWave) band, or a 60 GHz V-band (e.g., implementing a802.11 ad protocol). In some examples, the full processing modeselection 702 may also indicate whether a Multiple-Input Multiple-Output(MIMO) implementation is to be utilized, for example, the selection 702may indicate that a 2×2 spatial stream may be utilized.

FIG. 8 is a flowchart of a method 800 in accordance with examplesdescribed herein. Example method 800 may be implemented using, forexample, system 100 in FIG. 1 , system 200 in FIG. 2 , or any system orcombination of the systems depicted in FIGS. 3-7 described herein. Insome examples, the blocks in example method 800 may be performed by acomputing device such as a computing device 110 of FIG. 1 and/or inconjunction with a processing unit, such as processing unit 112 of FIG.2 . The operations described in blocks 804-832 may also be stored ascomputer-executable instructions in a computer-readable medium such as acomputer readable medium 115.

Example method 800 may begin with a block 804 that starts execution ofthe mixing input data with coefficient data routine. The method mayinclude a block 808 that recites “receiving a processing mode selectioncorresponding to a processing mode for a processing unit.” As describedherein, the processing mode selection may be received as a selectionfrom a touchscreen of a computing device that communicates with thecomputing system 110. Processing mode selections may be received fromany computing device that can receive user input regarding processingmode selections. Block 808 may be followed by block 812 that recites“configuring the processing unit to select the plurality of coefficientsbased on the processing mode selection.” As described herein,configuring the processing unit may include configuring the processingunit for various processing modes depending on the processing modeselection. Configuring the processing unit may include configuring theprocessing unit for various modes, including a single processing mode, amulti-processing mode, and a full processing mode. For example, acomputing system may operate in single-processing mode as a turbocodingoperation to output data according to data being encoded with theturbocoding operation. Block 812 may be followed by block 816 thatrecites “retrieving a plurality of coefficients from a memory database.”As described herein, the processing unit may retrieve coefficients formixing with input data; for example, utilizing a memory look-up unit.For example, the memory database may store associations betweencoefficients and wireless protocols and/or processing modes describedherein. For example, the processing unit may request the coefficientsfrom a memory database part of the implementing computing device, from amemory database part of an external computing device, or from a memorydatabase implemented in a cloud-computing device. In turn, the memorydatabase may send the plurality of coefficients as requested by theprocessing unit.

Block 816 may be followed by block 820 that recites “receiving inputdata for a transmission in a radio frequency (RF) wireless domain basedon the processing mode selection.” As described herein, the processingunit may be configured to receive a variety of types of input data, suchas a data bit stream, coded bits, modulated symbols, and the like thatmay be transmitted or received by a wireless transmitter or wirelessreceiver respectively. In an example, the processing unit, in a singleprocessing mode, may implement the functionality of an operation of aportion of the wireless transmitter or receiver. In the example of theturbocoding operation, the processing unit may receive a data bit streamto be coded, including an indication regarding a parameter of theturbocoding operation. In an example of an IFFT operation, theprocessing unit may receive a data bit stream to be transformed tofrequency-domain, including an indication regarding a parameter of theIFFT operation, such as the point size for the IFFT operation toutilize. In an example of a multi-processing mode operation of DAC, theinput data may be digital data to be converted to analog data fortransmitting at an antenna of a wireless transmitter. In some examples,a parameter regarding an aspect of an operation may be received in theprocessing mode selection. For example, the parameter of the IFFToperation, such as the point size for the IFFT operation, may bereceived as information included in a single-processing mode selection,a multi-processing mode selection, or a full processing mode selection.Block 820 may be followed by block 824 that recites “mixing the inputdata using the plurality of coefficients.” As described herein, theprocessing unit utilizes the plurality of coefficients such that mixingthe coefficients with input data generates output data that reflects theprocessing of the input data with coefficients by the circuitry of FIG.2 . For example, various ALUs in an integrated circuit may be configuredto operate as the circuitry of FIG. 2 , thereby mixing the input datawith the coefficients as described herein. In some examples, varioushardware platforms may implement the circuitry of FIG. 2 , such as anASIC, a DSP implemented as part of a FPGA, or a system-on-chip. Block824 may be followed by block 828 that recites “providing output datarepresentative of a portion of the transmission being processedaccording to the processing mode selection.” As described herein, theoutput data may be provided to another portion of specifically-designedhardware such as another portion of a wireless transmitter or receiver,or an antenna for wireless, RF transmission. In an example of a fullprocessing mode selection, the output data may be provided to anapplication requesting the output data from a wireless endpoint, suchthat the output data was provided to the application as part of aprocessing unit implementing a wireless receiver. Block 828 may befollowed by block 832 that ends the example method 800. In someexamples, the blocks 808 and 812 may be optional blocks.

FIG. 9 is a flowchart of a method 900 in accordance with examplesdescribed herein. Example method 900 may be implemented using, forexample, system 100 in FIG. 1 , system 200 in FIG. 2 , or any system orcombination of the systems depicted in FIGS. 3-7 described herein. Insome examples, the blocks in example method 900 may be performed by acomputing device such as a computing device 110 of FIG. 1 and/or inconjunction with a processing unit 112 of FIG. 2 . The operationsdescribed in blocks 904-928 may also be stored as computer-executableinstructions in a computer-readable medium such as a computer readablemedium 115 or computer readable 117.

Example method 900 may begin with a block 904 that starts execution ofthe mixing input data with coefficient data routine. The method maybegin with a block 908 that recites “receiving input data associatedwith a radio frequency (RF) wireless transmission.” As described herein,the processing unit may be configured to receive a variety of types ofinput data, such as a data bit stream, coded bits, modulated symbols,and the like that may be transmitted or received by a wirelesstransmitter or wireless receiver respectively. In an example, theprocessing unit, in a single processing mode, may implement thefunctionality of an operation of a portion of the wireless transmitteror receiver. In the example of the turbocoding operation, the processingunit may receive a data bit stream to be coded, including an indicationregarding a parameter of the turbocoding operation. In an example of anIFFT operation, the processing unit may receive a data bit stream to betransformed to frequency-domain, including an indication regarding aparameter of the IFFT operation, such as the point size for the IFFToperation to utilize. In an example of a multi-processing mode operationof DAC, the input data may be digital data to be converted to analogdata for transmitting at an antenna of a wireless transmitter. In someexamples, a parameter regarding an aspect of an operation may bereceived in the processing mode selection. For example, the parameter ofthe IFFT operation, such as the point size for the IFFT operation, maybe received as information included in a single-processing modeselection, a multi-processing mode selection, or a full processing modeselection. Block 908 may be followed by block 912 that recites“performing, on the input data, operations of an RF front-end tomodulate the input data for a RF wireless transmission.” As describedherein, a specifically-designed wireless transmitter may perform RFfront-end operations, such as scrambling, coding, interleaving,modulation mapping, frequency up-conversion, and the like describedabove to transmit the input data as an RF wireless transmission. In anexample, a specifically-designed wireless transmitter may perform only aportion of the RF front-end operations to train a computing device for aspecific operation of the wireless transmitter, such that thecoefficient data generated by the computing device may be utilized in asingle processing mode or a multi-processing mode.

Block 912 may be followed by block 916 that recites “comparing theoutput data to the input data to generate the coefficient data.” Asdescribed herein, a computing device may compare the output data fromthe specifically-designed wireless transmitter to output data generatedfrom a processing unit of the computing device implementing theoperation of the wireless transmitter. For example, the computing devicemay use a least error p-norm comparison, as part of a minimizationfunction, between the two outputs to determine whether the coefficientdata represents an estimation of the specifically-designed wirelesstransmitter. In an example, the computing device may use a least squareserror function, as part of an optimization problem, between the twooutputs to determine whether the coefficient data represents anestimation of the specifically-designed wireless transmitter. Block 916may be followed by block 920 that recites “training a computing deviceto generate coefficient data based on the operations performed to theinput data such that mixing the input data using the coefficient datagenerates an approximation of the output data.” As described herein, thecomputing device may compare the output data from thespecifically-designed wireless transmitter to output data generated froma processing unit of the computing device implementing the operation ofthe wireless transmitter across a variety of test vectors and inputsamples to train the computing device to determine a minimized error.For example, the minimized error, trained across various input samplesand test vectors may represent the optimized estimation of theprocessing of the input data in the specifically-designed hardware. Inan example, training the computing device according to input samples andtest vectors may be referred to as supervised learning of the computingdevice to generate coefficient data. In various examples, the computingdevice may also be trained to generate coefficient data according tounsupervised learning. For example, the computing device may monitoroutput of the specifically-designed hardware to learn which coefficientdata may minimize the error of a processing unit of the computing deviceimplementing the operation of the wireless transmitter. Block 920 may befollowed by block 924 that recites “storing the coefficient data in acoefficient memory.” As described herein, the computing device may storethe coefficients in a memory, such as a memory database. For example,the memory may store associations between coefficients and wirelessprotocols and/or processing mode, as trained by the computing device.For example, the computing device may store the coefficients in a memorypart of the computing device itself, in a memory of an externalcomputing device, or in a memory implemented in a cloud-computingdevice. Block 924 is followed by the block 928 that ends the examplemethod 900. In some examples, the block 924 may be an optional block.

The blocks included in the described example methods 800 and 900 are forillustration purposes. In some embodiments, the blocks may be performedin a different order. In some other embodiments, various blocks may beeliminated. In still other embodiments, various blocks may be dividedinto additional blocks, supplemented with other blocks, or combinedtogether into fewer blocks. Other variations of these specific blocksare contemplated, including changes in the order of the blocks, changesin the content of the blocks being split or combined into other blocks,etc.

From the foregoing it will be appreciated that, although specificembodiments of the invention have been described herein for purposes ofillustration, various modifications may be made without deviating fromthe spirit and scope of the invention.

What is claimed is:
 1. A method for processing wireless communicationsusing a configurable algorithm, the method comprising: receiving inputdata for digital signal processing; receiving coefficient data specificto a wireless protocol; and mixing the input data with the coefficientdata to generate output data representative of a transmission beingprocessed according to the wireless protocol.
 2. The method of claim 1,wherein the wireless protocol is a 5G wireless protocol selected from agroup comprising filter bank multi-carrier (FBMC), generalized frequencydivision multiplexing (GFDM), universal filtered multi-carrier (UFMC)transmission, bi-orthogonal frequency division multiplexing (BFDM),sparse code multiple access (SCMA), non-orthogonal multiple access(NOMA), multi-user shared access (MUSA), and faster-than-Nyquist (FTN)signaling with time-frequency packing.
 3. The method of claim 1, whereinthe input data and coefficient data are mixed in a computing system withprocessing units.
 4. The method of claim 1, further comprising traininga computing device with the coefficient data by comparing output datagenerated by a wireless transmitter to the input data.
 5. The method ofclaim 1, further comprising processing the wireless communication datafrom the perspective of one or more of a time domain, a frequencydomain, and a code domain.
 6. A wireless communication device,comprising: a processor configured to receive input data for digitalsignal processing and coefficient data specific to a wireless protocol,wherein the processor is further configured to mix the input data withthe coefficient data to generate output data representative of atransmission being processed according to the wireless protocol.
 7. Thewireless communication device of claim 6, wherein the wireless protocolis a 5G wireless protocol selected from a group comprising filter bankmulti-carrier (FBMC), generalized frequency division multiplexing(GFDM), universal filtered multi-carrier (UFMC) transmission,bi-orthogonal frequency division multiplexing (BFDM), sparse codemultiple access (SCMA), non-orthogonal multiple access (NOMA),multi-user shared access (MUSA), and faster-than-Nyquist (FTN) signalingwith time-frequency packing.
 8. The wireless communication device ofclaim 6, wherein the processor is configured to operate for differentwireless protocol settings, including one or more inverse fast Fouriertransform (IFFT) settings.
 9. The wireless communication device of claim6, further comprising a coefficient database configured to store sets ofcoefficient data corresponding to various wireless protocols, includingthe coefficient data.
 10. The wireless communication device of claim 6,wherein the processor is further configured to receive a processing modeselection from a user, the processing mode selection indicating aspecific processing mode for the computing system, and to provide outputdata that is representative of the data transmission being processedaccording to the selected processing mode.
 11. A non-transitorycomputer-readable medium storing instructions that, when executed by aprocessor, cause the processor to: receive input data for digital signalprocessing; receive coefficient data specific to a wireless protocol;and mix the input data with the coefficient data to generate output datarepresentative of a transmission being processed according to thewireless protocol.
 12. The non-transitory computer-readable medium ofclaim 11, wherein the wireless protocol is a 5G wireless protocolselected from a group comprising filter bank multi-carrier (FBMC),generalized frequency division multiplexing (GFDM), universal filteredmulti-carrier (UFMC) transmission, bi-orthogonal frequency divisionmultiplexing (BFDM), sparse code multiple access (SCMA), non-orthogonalmultiple access (NOMA), multi-user shared access (MUSA), andfaster-than-Nyquist (FTN) signaling with time-frequency packing.
 13. Thenon-transitory computer-readable medium of claim 11, further comprisinginstructions that, when executed by the processor, cause the processorto mix the input data and coefficient data in a computing system withprocessing units.
 14. The non-transitory computer-readable medium ofclaim 11, further comprising instructions that, when executed by theprocessor, cause the processor to train a computing device with thecoefficient data by comparing output data generated by a wirelesstransmitter to the input data.
 15. The non-transitory computer-readablemedium of claim 11, further comprising instructions that, when executedby the processor, cause the processor to process the wirelesscommunication data from the perspective of one or more of a time domain,a frequency domain, and a code domain.
 16. The non-transitorycomputer-readable medium of claim 11, further comprising instructionsthat, when executed by the processor, cause the processor to operate fordifferent wireless protocol settings, including one or more inverse fastFourier transform (IFFT) settings.
 17. The non-transitorycomputer-readable medium of claim 11, further comprising instructionsthat, when executed by the processor, cause the processor to access acoefficient database configured to store sets of coefficient datacorresponding to one or more wireless protocols.
 18. The non-transitorycomputer-readable medium of claim 11, further comprising instructionsthat, when executed by the processor, cause the processor to receive aprocessing mode selection from a user, the processing mode selectionindicating a specific processing mode for the computing system, and toprovide output data that is representative of the data transmissionbeing processed according to the selected processing mode.
 19. Thenon-transitory computer-readable medium of claim 18, wherein theprocessing mode selection comprises a single processing mode, amulti-processing mode, or a full processing mode.
 20. The non-transitorycomputer-readable medium of claim 11, wherein the coefficient data isutilized to process various aspects of a wireless protocol selected fromthe group comprising: baseband processing of a wireless transmitter,baseband processing of a wireless receiver, processing of a digitalfront-end transmitter, analog-to-digital conversion (ADC) processing,digital-to-analog (DAC) conversion processing, digital up conversion(DUC), digital down conversion (DDC), direct digital synthesizer (DDS)processing, DDC with DC offset compensation, digital pre-distortion(DPD), peak-to-average power ratio (PAPR) determinations, crest factorreduction (CFR) determinations, pulse-shaping, image rejection,delay/gain/imbalance compensation, noise-shaping, numerical controlledoscillator (NCO), self-interference cancellation (SIC), a modulationalgorithm, an error-correction coding or decoding algorithm, channelestimation, a precoding algorithm, and a combination thereof.